package com.ht.api.call.impl;

import com.ht.api.db.DbConfig;
import org.springframework.stereotype.Component;

import com.ht.api.bean.AjaxResult;
import com.ht.api.bean.LoginBean;
import com.ht.api.call.AbstractCall;
import com.ht.api.db.Db;
import com.ht.api.db.Entity;
import com.ht.api.db.exception.HtException;

import cn.hutool.json.JSONObject;

import javax.sql.DataSource;

/**
 * 业务执行器:edit
 * @author asq
 * @createTime 2024年12月23日 21:02:18
 */
@Component
public class EditCall extends AbstractCall {
	
	@Override
	public boolean isOpen() {
		return false;
	}

	@Override
	public String getName() {
		return "通用修改";
	}

	@Override
	public AjaxResult doExecute(LoginBean me, JSONObject param, JSONObject config) {
		DataSource ds = null;
		if (me.isSysCommonCall()) {
			ds = DbConfig.useSysDb();
		} else {
			ds = me.getDataSource();
		}


		String table = config.getStr("table");
		Entity entity = param.getBean(PARAM, Entity.class).setTable(table);
		if (!entity.containsKey("main_id")) {
			throw new HtException("没有主键main_id，无法执行修改~");
		}
		Db.insert(ds, entity);
		return AjaxResult.success();
	}

}
